<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');

/**
 * Помощник для создания thumbnail изображений
 * 
 * @package CoreFramework
 * @version 1.0
 * @author Gennadiy Kozlenko
 */

/**
 * Создание thumbnail изображения
 *
 * @param string $src
 * @param integer $width
 * @param integer $height
 * @return string
 */
function create_thumbnail($src, $width, $height) {
   $obj =& get_instance();
   // Генерируем название файла превью
   $thumbnail = preg_replace('~^(.*)\.([^\.]+)$~msi', '$1-' . $width . 'x' . $height . '.$2', $src);
   //@unlink(BASEPATH . '../' . $thumbnail);
   if (!file_exists(BASEPATH . '../' . $thumbnail)) {
      // Если такого файла еще не сушествует, создаем его
      $master_dim = 'auto';
      $scale = true;
      // Получаем исходные размеры изображения
      $info = @getimagesize(BASEPATH . '../' . $src);
      if (is_array($info) && 0 < count($info)) {
         $cur_width = $info[0];
         $cur_height = $info[1];
         if ($cur_width < $width && $cur_height < $height) {
            $scale = false;
         }
         $master_dim = ($cur_width / $width) > ($cur_height / $height) ? 'width' : 'height';
      }
      if ($scale) {
         $obj->load->library('image_lib');
         $config = array(
            'source_image'   => BASEPATH . '../' . $src,
            'new_image'      => BASEPATH . '../' . $thumbnail,
            'maintain_ratio' => true,
            'width'          => $width,
            'height'         => $height,
            'master_dim'     => $master_dim
         );
         $obj->image_lib->initialize($config);
         $obj->image_lib->resize();
      } else {
         copy(BASEPATH . '../' . $src, BASEPATH . '../' . $thumbnail);
         chmod(BASEPATH . '../' . $thumbnail, 0777);
      }
   }
   return $thumbnail;
} // end create_thumbnail
